home *** CD-ROM | disk | FTP | other *** search
-
-
- ----=====================================================----
- ----====< This file contains additional programming >====----
- ----====< information for the Pro Audio Spectrum. >====----
- ----=====================================================----
-
-
- Programming PCM stuff... (For the Original Pro Audio Spectrum)
-
- A few considerations when programming the 8253 timer chip.
-
- 1. When programming timer 0 (sample rate timer), and
- timer 1 (sample buffer count), remember to first
- program the shadowed timer control register (138Bh)
- to set up the timer mode. This was not well documented
- in the early versions of the developers kit manual.
-
- 2. A speed related problem has been reported when
- programming the 8253 timers. A period of time must
- elapse between programming the shadowed timer control
- register, and the actual timers. This should be
- minimally 2 micro seconds. The best approach is to
- perform an OUT instruction, then a couple IN
- instructions. The I/O instructions will slow all
- processors down to the 8 mhz rate; thereby, forcing
- proper timing on all AT class machines.
-
- 3. A special note about the sample buffer counter. Normal
- PCM record and playback uses mode 2 of the 8253 timer.
- This mode only accepts values from 2 through ffff+1 (or
- zero for 64k). A value of 1 will not generate the
- expected end of buffer interrupt.
-
- 4. The description of the sample rate and sample buffer
- mask bit in the developers manual, is not clear. These
- bits are the enable gates that allow the timers to run.
- These bits are set to enable the timers, not to disable
- them.
-
- New programming considerations for support the Pro Audio
- Spectrum products based upon the MV101 ASIC.
-
- Changes to the 8253 timer chip.
-
- The MV101 ASIC emulates the 8253 timer chip, with
- a couple changes. Timer 0 is only an 8 bit value.
- When programming the timer for 16 bits, the high
- order byte will be ignored.
-
- Timer 1 functionality has been modified. The timer
- works the same for 8 and 16 bit PCM on 8 bit DMA
- channels, but changes slightly for the 16 bit DMA
- channels. The count needs to be divided by 2 when
- programming the timer for use on a 16 bit channel.
-
- Single Shot DMA PCM transfers.
-
- When performing DMA transfers, and NOT using the
- auto-initialize DMA mode, one special step should
- be performed at IRQ time. Upon receiving a Sample
- Buffer Count interrupt (buffer complete IRQ), turn
- off the PCMEnable bit in the cross channel register.
- Once the DMA is programmned for the next block,
- and timer 1 reprogrammed for the new block length,
- the PCMEnable bit can be turned back on.
-
- DMA & IRQ channel support.
-
- The Pro Audio spectrum product line, based upon the
- MV101 ASIC, supports the high order DMA and IRQs
- of the AT class machines. Please add support for
- these channels. Example code can be found in
- MVSOUND.ASM in \PAS\SUBS\MVSOUND.
-
- Board I/O relocation.
-
- The MV1010 ASIC allows the Pro Audio to be relocated
- to alternate base I/O addresses. For example, the
- card can be moved, from 388 to 384. This affects all
- native Pro Audio addresses, such as the filter, pcm,
- interrupt, fm, and MIDI addresses. Use the function,
- "mvGetHWVersion" to determine the current I/O address.
- For coding examples, checkout MVSOUND.ASM in the
- subdirectory, \PAS\SUBS\MVSOUND. This code calls
- mvGetHWVersion, then uses a special memory variable,
- "_MVTranslateCode" to adjust the original address.
-
- Stereo 2OP FM Synthesis.
-
- The new OPL3 4OP FM chip does not exactly emulate
- two 2OP FM chips. Two programs, PAN2OP.C and PHASE.C,
- located in \PAS\SUBS\FM, show how to perform stereo
- 2OP on either hardware platforms.
-
-